1. Field of the Invention
This invention generally relates to data processing systems, and more particularly relates to methods for servicing queuing requests while prioritizing queue items according to flexible queuing criteria.
2. Description of Related Art
Computing systems commonly utilize queuing when more work is requested in terms of tasks (jobs) than there are resources available to serve or process the work at the time of the job submission, or when the jobs have release dates before which they may not be served by the requested resource(s). A queuing system, however, should not be mistaken for a scheduling system. Instead, a queuing system is typically an integral part of a scheduling system, where the scheduling system determines the number of sort criteria, their respective ranges of values, and the scheduling policy based upon which jobs are retrieved from the queuing system and dispatched for processing.
Typically, a job queue has only one or a few sorting criteria, according to which it places the submitted jobs. For example, priority, job size, expected job duration, are common queuing criteria. There may be high, medium, and low job priorities and within each of these priorities, there may be a small job sub-queue and a large job sub-queue. Then, typically the overall queuing system may allocate job processing resources to each of these sub-queues according to a given schedule.
Unfortunately, since the number and type of queuing criteria for a queuing system is typically fixed in the software code, any attempt at customizing a computing system""s queuing mechanisms requires significant technical and programming resources. Additionally, the internal structure of queue items usually is closely tied to the sorting and prioritizing algorithms for a specific queuing system. Hence, a customization of a system would also likely require re-formatting all queue items for a particular system. This is a costly endeavor that typically makes customization, such as to improve performance or to change queuing criteria of a queuing system, prohibitive for many computing systems.
Therefore a need exists to overcome the problems with the prior art as discussed above, and particularly for an improved queuing system that can be quickly and easily customized without necessarily having to change the queuing system software or re-formatting existing queue items.